/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package compras.beans;

import entities.PedidoFabrica;
import entities.Usuario;
import facades.PedidoFabricaFacade;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import javax.enterprise.context.SessionScoped;
import javax.enterprise.event.Event;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import javax.inject.Named;
import qualifiers.EventoEntidadCreada;
import qualifiers.EventoEntidadEditada;
import qualifiers.EventoEntidadElegida;
import qualifiers.UsuarioLogeado;

/**
 *
 * @author damfercer
 */
@Named(value = "editarPedidoFabricaBean")
@SessionScoped
public class EditarPedidoFabricaBean implements Serializable{
    private PedidoFabrica pedidoFabricaEditado;
    @Inject
    private PedidoFabricaFacade pedidoFabricaFacade;
    @Inject
    @UsuarioLogeado
    private Usuario usuarioLogeado;
    @Inject
    @EventoEntidadEditada
    private Event<PedidoFabrica> eventoPedidoFabricaEditado;

    /**
     * Creates a new instance of NuevoProductoBean
     */
    public EditarPedidoFabricaBean() {
        pedidoFabricaEditado=new PedidoFabrica();
    }

    /**
     * @return the productoEditado
     */
    public PedidoFabrica getPedidoFabricaEditado() {
        return pedidoFabricaEditado;
    }

    /**
     * @param productoEditado the productoEditado to set
     */
    public void setPedidoFabricaEditado(PedidoFabrica pedidoFabricaEditado) {
        this.pedidoFabricaEditado = pedidoFabricaEditado;
    }
    
    public void editarPedidoFabrica(){
        Date ahora=new Date();
        pedidoFabricaEditado.getUltimoUsuario().getUltimoUsuarioPedidoFabricaList().remove(pedidoFabricaEditado);
        pedidoFabricaEditado.setUltimoUsuario(usuarioLogeado);
        pedidoFabricaEditado.setFechaUltimaModificacion(ahora);
        eventoPedidoFabricaEditado.fire(pedidoFabricaEditado);
        pedidoFabricaFacade.edit(pedidoFabricaEditado);
        if(usuarioLogeado.getUltimoUsuarioPedidoFabricaList()==null){
            usuarioLogeado.setUltimoUsuarioPedidoFabricaList(new ArrayList<PedidoFabrica>());
        }
        usuarioLogeado.getUltimoUsuarioPedidoFabricaList().add(pedidoFabricaEditado);
    }
    
    public void onElegirPedidoFabrica(@Observes @EventoEntidadElegida PedidoFabrica pf){
        this.pedidoFabricaEditado=pf;
    }
    
    public void onNuevoPedidoFabrica(@Observes @EventoEntidadCreada PedidoFabrica pf){
        this.pedidoFabricaEditado=pf;
    }
}
